
# generate appendix C2, tables C3 to C5

library(rio) # to load data
library(tidyverse) # to reshape data
library(AER) # to run tobit
library(brglm2) # to run penalized logit
library(lmtest) # to cluster standard errors
library(sandwich) # to cluster standard errors
library(texreg) # to generate tables

# set your working directory
setwd("~/replication_files")

monthly_data <- import("data/monthly_data.csv")

# table C3

# model 1
probit1 <- glm(sovereign_issued_1yr ~ 
              resource_rents_perc_lag +
              log_oil_production_lag +
              terms_of_trade_lag +
              discovery_lag +
              minister_is_econ_technocrat_usa +
              minister_turnover_5yrs +
              debt_crisis_experience +
              election_month + left_exec +
              fiscal_council + 
              polcon + 
              imf_agreement +
              fiscal_balance_lag + 
              tax_perc_gdp_cepal_lag +
              log_core_inflation_lag +
              gdp_pc_cepal_lag +
              gdp_growth_cepal_lag +
              ka_open_lag +
              log_reserves_lag +
              treasury_rate_lag +
              I(iso3c) + 
              time, 
              data = subset(monthly_data, iso3c!="BRA" & iso3c!="VEN" & iso3c!="MEX"),
              family = binomial(link = "probit"))

probit1_r <- probit1 %>%
  coeftest(vcovHC(probit1, type = 'HC0', cluster = c('iso3c','Summary')))

# model 2
tobit1 <- tobit(log_sovereign_issued_1yr_amount ~ 
                resource_rents_perc_lag +
                log_oil_production_lag +
                terms_of_trade_lag +
                discovery_lag +
                minister_is_econ_technocrat_usa +
                minister_turnover_5yrs +
                debt_crisis_experience +
                election_month + left_exec +
                fiscal_council + 
                polcon + 
                imf_agreement +
                fiscal_balance_lag + 
                tax_perc_gdp_cepal_lag +
                log_core_inflation_lag +
                gdp_pc_cepal_lag +
                gdp_growth_cepal_lag +
                ka_open_lag +
                log_reserves_lag +
                treasury_rate_lag +
                I(iso3c) + 
                time, 
                data = subset(monthly_data, iso3c!="BRA" & iso3c!="VEN" & iso3c!="MEX"), robust = T)

# generate table C3
texreg(l = list(probit1_r,tobit1), stars = c(0.01, 0.05, 0.1),
       custom.coef.map = list("resource_rents_perc_lag" = "Resource Rents, % of GDP $_{t-1}$",
                   "log_oil_production_lag" = "Ln Oil and Gas Production $_{t-1}$",
                   "terms_of_trade_lag" = "Commodity Price Index $_{t-1}$",
                   "discovery_lag" = "Field Discovery $_{t-1}$",
                   "minister_is_econ_technocrat_usa" = "Mainstream Minister = 1",
                   "minister_turnover_5yrs" = "Minister Turnover (5 Years)",
                   "debt_crisis_experience" = "Debt Crisis Experience = 1",
                   "election_month" = "Election Month = 1",
                   "left_exec" = "Left Executive = 1",
                   "cb_independence" = "Central Bank Independence",
                   "fiscal_council" = "Fiscal Council = 1",
                   "polcon" = "Political Constraints",
                   "imf_agreement" = "IMF Agreement = 1",
                   "fiscal_balance_lag" = "Fiscal Balance, % of GDP $_{t-1}$",
                   "tax_perc_gdp_cepal_lag" = "Tax Revenue, % of GDP $_{t-1}$",
                   "log_core_inflation_lag" = "Ln Core Inflation $_{t-1}$",
                   "gdp_pc_cepal_lag" = "GDP Per Capita $_{t-1}$",
                   "gdp_growth_cepal_lag" = "GDP Growth, % $_{t-1}$",
                   "ka_open_lag" = "Capital Openness $_{t-1}$",
                   "log_reserves_lag" = "Ln International Reserves $_{t-1}$",
                   "Log(scale)" = "Log(Scale)"),
       fontsize = "footnotesize", digits = 3)

# retrieve fit stats
texreg(l = list(probit1,tobit1), stars = c(0.01, 0.05, 0.1))

# table C4

# model 1
# this needs to be estimated with penalized MLE, rather than regular MLE, to address issues of complete separation
probit2 <- glm(sovereign_issued_1yr ~ 
               resource_rents_perc_lag +
               log_oil_production_lag +
               terms_of_trade_lag +
               discovery_lag +
               minister_is_econ_technocrat_usa +
               minister_turnover_5yrs +
               debt_crisis_experience +
               election_month + left_exec +
               fiscal_council + 
               polcon + 
               imf_agreement +
               fiscal_balance_lag + 
               tax_perc_gdp_cepal_lag +
               log_core_inflation_lag +
               gdp_pc_cepal_lag +
               gdp_growth_cepal_lag +
               ka_open_lag +
               log_reserves_lag +
               treasury_rate_lag +
               I(iso3c) + 
               time, 
               data = subset(monthly_data, iso3c!="ARG" & iso3c!="ECU"),
               family = binomial(link = "probit"), method = "brglmFit")

probit2_r <- probit2 %>%
  coeftest(vcovHC(probit2, type = 'HC0', cluster = c('iso3c','Summary')))

# model 2
tobit2 <- tobit(log_sovereign_issued_1yr_amount ~ 
                resource_rents_perc_lag +
                log_oil_production_lag +
                terms_of_trade_lag +
                discovery_lag +
                minister_is_econ_technocrat_usa +
                minister_turnover_5yrs +
                debt_crisis_experience +
                election_month + left_exec +
                fiscal_council + 
                polcon + 
                imf_agreement +
                fiscal_balance_lag + 
                tax_perc_gdp_cepal_lag +
                log_core_inflation_lag +
                gdp_pc_cepal_lag +
                gdp_growth_cepal_lag +
                ka_open_lag +
                log_reserves_lag +
                treasury_rate_lag +
                I(iso3c) + 
                time, 
                data = subset(monthly_data, iso3c!="ARG" & iso3c!="ECU"), robust = T)

# generate table C4
texreg(l = list(probit2_r,tobit2), stars = c(0.01, 0.05, 0.1),
       custom.coef.map = list("resource_rents_perc_lag" = "Resource Rents, % of GDP $_{t-1}$",
                   "log_oil_production_lag" = "Ln Oil and Gas Production $_{t-1}$",
                   "terms_of_trade_lag" = "Commodity Price Index $_{t-1}$",
                   "discovery_lag" = "Field Discovery $_{t-1}$",
                   "minister_is_econ_technocrat_usa" = "Mainstream Minister = 1",
                   "minister_turnover_5yrs" = "Minister Turnover (5 Years)",
                   "debt_crisis_experience" = "Debt Crisis Experience = 1",
                   "election_month" = "Election Month = 1",
                   "left_exec" = "Left Executive = 1",
                   "cb_independence" = "Central Bank Independence",
                   "fiscal_council" = "Fiscal Council = 1",
                   "polcon" = "Political Constraints",
                   "imf_agreement" = "IMF Agreement = 1",
                   "fiscal_balance_lag" = "Fiscal Balance, % of GDP $_{t-1}$",
                   "tax_perc_gdp_cepal_lag" = "Tax Revenue, % of GDP $_{t-1}$",
                   "log_core_inflation_lag" = "Ln Core Inflation $_{t-1}$",
                   "gdp_pc_cepal_lag" = "GDP Per Capita $_{t-1}$",
                   "gdp_growth_cepal_lag" = "GDP Growth, % $_{t-1}$",
                   "ka_open_lag" = "Capital Openness $_{t-1}$",
                   "log_reserves_lag" = "Ln International Reserves $_{t-1}$",
                   "Log(scale)" = "Log(Scale)"),
       fontsize = "footnotesize", digits = 3)

# retrieve fit stats
texreg(l = list(probit2,tobit2), stars = c(0.01, 0.05, 0.1))


# table C5

# model 1
probit3 <- glm(sovereign_issued_1yr ~ 
               resource_rents_perc_lag +
               log_oil_production_lag +
               terms_of_trade_lag +
               discovery_lag +
               minister_is_econ_technocrat_usa +
               minister_turnover_5yrs +
               debt_crisis_experience +
               election_month + left_exec +
               fiscal_council + 
               polcon + 
               imf_agreement +
               fiscal_balance_lag + 
               tax_perc_gdp_cepal_lag +
               log_core_inflation_lag +
               gdp_pc_cepal_lag +
               gdp_growth_cepal_lag +
               ka_open_lag +
               log_reserves_lag +
               treasury_rate_lag +
               I(iso3c) + 
               time, 
               data = subset(monthly_data, year!=2020),
               family = binomial(link = "probit"))

probit3_r <- probit3 %>%
  coeftest(vcovHC(probit3, type = 'HC0', cluster = c('iso3c','Summary')))

# model 2
tobit3 <- tobit(log_sovereign_issued_1yr_amount ~ 
                resource_rents_perc_lag +
                log_oil_production_lag +
                terms_of_trade_lag +
                discovery_lag +
                minister_is_econ_technocrat_usa +
                minister_turnover_5yrs +
                debt_crisis_experience +
                election_month + left_exec +
                fiscal_council + 
                polcon + 
                imf_agreement +
                fiscal_balance_lag + 
                tax_perc_gdp_cepal_lag +
                log_core_inflation_lag +
                gdp_pc_cepal_lag +
                gdp_growth_cepal_lag +
                ka_open_lag +
                log_reserves_lag +
                treasury_rate_lag +
                I(iso3c) + 
                time, 
                data = subset(monthly_data, year!=2020), robust = T)

# generate table C5
texreg(l = list(probit3_r,tobit3), stars = c(0.01, 0.05, 0.1),
       custom.coef.map = list("resource_rents_perc_lag" = "Resource Rents, % of GDP $_{t-1}$",
                   "log_oil_production_lag" = "Ln Oil and Gas Production $_{t-1}$",
                   "terms_of_trade_lag" = "Commodity Price Index $_{t-1}$",
                   "discovery_lag" = "Field Discovery $_{t-1}$",
                   "minister_is_econ_technocrat_usa" = "Mainstream Minister = 1",
                   "minister_turnover_5yrs" = "Minister Turnover (5 Years)",
                   "debt_crisis_experience" = "Debt Crisis Experience = 1",
                   "election_month" = "Election Month = 1",
                   "left_exec" = "Left Executive = 1",
                   "cb_independence" = "Central Bank Independence",
                   "fiscal_council" = "Fiscal Council = 1",
                   "polcon" = "Political Constraints",
                   "imf_agreement" = "IMF Agreement = 1",
                   "fiscal_balance_lag" = "Fiscal Balance, % of GDP $_{t-1}$",
                   "tax_perc_gdp_cepal_lag" = "Tax Revenue, % of GDP $_{t-1}$",
                   "log_core_inflation_lag" = "Ln Core Inflation $_{t-1}$",
                   "gdp_pc_cepal_lag" = "GDP Per Capita $_{t-1}$",
                   "gdp_growth_cepal_lag" = "GDP Growth, % $_{t-1}$",
                   "ka_open_lag" = "Capital Openness $_{t-1}$",
                   "log_reserves_lag" = "Ln International Reserves $_{t-1}$",
                   "Log(scale)" = "Log(Scale)"),
       fontsize = "footnotesize", digits = 3)

# retrieve fit stats
texreg(l = list(probit3,tobit3), stars = c(0.01, 0.05, 0.1))
